home *** CD-ROM | disk | FTP | other *** search
/ Mission 3 / Mission 3.zip / Mission 3.iso / demovers / texel / skripte / _1.tsc next >
Text File  |  1997-11-23  |  1KB  |  57 lines

  1. // MMult(bereich1,bereich2,bereichZ)
  2. // tm 97-11-23
  3. // multipliziert die zwei Matrizen bereich1,bereich2
  4. // und schreibt das Ergebnis ab der linken oberen Zelle
  5. // des Zielbereichs ins Blatt
  6.  
  7. proc main(...)
  8. {
  9.     if (argc<5) exit(1);
  10.  
  11.     datei = argv[0];
  12.     zelle = argv[1];
  13.     
  14.     if (address("texel"))
  15.     {
  16.         m1   = GetRange(argv[2],datei);
  17.         m2   = GetRange(argv[3],datei);
  18.         dest = GetRange(argv[4],datei);
  19.         
  20.         r1s = m1[0];
  21.         c1s = m1[1];
  22.         r1e = m1[2];
  23.         c1e = m1[3];
  24.     
  25.         r2s = m2[0];
  26.         c2s = m2[1];
  27.         r2e = m2[2];
  28.         c2e = m2[3];
  29.     
  30.         dr = dest[0];
  31.         dc = dest[1];
  32.         
  33.         if (((r1e - r1s) == (c2e - c2s)) && ((c1e - c1s) == (r2e - r2s)))
  34.         {
  35.             for (r=r1s; r<=r1e; r++)
  36.             {
  37.                 for (c=c2s; c<=c2e; c++)
  38.                 {
  39.                     wert = 0.0;
  40.                     
  41.                     for (i=c1s; i<=c1e; i++)
  42.                     {
  43.                         z1 = GetCell(r,i,datei);
  44.                         z2 = GetCell(i+r2s-c1s,c,datei);
  45.                         
  46.                         wert += z1*z2;
  47.                     }
  48.     
  49.                     SetCell(r+dr-r1s,c+dc-c2s,wert,datei);
  50.                 }
  51.             }
  52.         }
  53.     
  54.         ReturnCellValue(datei,zelle,0.0);
  55.     }
  56. }
  57.